#pragma once

#include <iostream>
#include <string.h>
#include <stdio.h>
#include "Position.h"
#include "Texture.h"
#include "color.h"


using namespace std;


/************************************************************************/
/* Intefaz que representa a todos los objetos graficables por pantalla   */
/************************************************************************/
class Drawable {

	public: virtual void setPosition(Position *position) = 0;

	public: virtual Position * getPosition() = 0;
	
	public: virtual Color * getElementColor() = 0;
	
	public: virtual void setElementColor( Color * color) = 0;

	public: virtual Color * getLineColor() = 0;

	public: virtual void setLineColor( Color * color) = 0;

	public: virtual Texture * getTexture() = 0;

	public: virtual void setTexture(Texture *texture) = 0;

	public: virtual void draw() = 0;
//Para utilizar los siguientes metodos, la posicion debera estar ya seteada sino, devolvera 0
	public: virtual float getMinXPos() = 0;
	
	public: virtual float getMinYPos() = 0;
	
	public: virtual float getMaxXPos() = 0;
	
	public: virtual float getMaxYPos() = 0;


};
